With a conventional computer memory, numbers, data, patterns, etc. are stored in specific memory locations. When programming the computer, the programmer must be aware of the memory addresses where data is stored in order to retrieve this data when needed. The cognitive memory of this invention stores incoming data and patterns in any available location. The data and patterns are recovered without knowledge of where they are stored when the memory is prompted by an input pattern that is related to but not necessarily identical to the stored pattern. An autoassociative neural network is used to establish the relationship between the prompting pattern and the sought-after pattern.
Bracketed numbers refer to references listed in the References section of this specification. Modern pattern recognition techniques [22, 24, 35] are multifaceted and highly varied. Generally, patterns to be recognized are pre-processed with feature detection, biometric measurements, etc. and the pre-processed patterns are then fed to a classifier, which is trainable, often a neural network. The output of the classifier is usually a binary-coded vector that represents the class of the input pattern. The recognition system is trained with a set of training patterns. Once the system is trained, the training patterns are generally discarded, and the system is then set to classify patterns.
The methodology of the present invention differs from this. One difference is that the training patterns are retained and not discarded. They are stored in memory folders together with ancillary data, including their identifications. The pattern recognition process of this invention is a two-step procedure. The first step allows the input pattern to be modified in certain allowable ways (such as rotation, translation, scaling, etc.) in attempting to relate this input prompt to the stored training patterns. The autoassociative neural network indicates when and if the modified pattern matches one of the training patterns. If there is a “hit,” the second step begins with a search for the matching training pattern. Once this is found, the contents of the memory folder storing the hit training pattern becomes available, which contains the identity of the input pattern and related ancillary data. The ancillary data may contain other patterns that could prompt further searches, establishing other connections between the recorded data in the memory folders. This could be used to relate time-sequential data such as video or audio patterns.
The cognitive memory of this invention is able to store within a unified electronic memory system visual inputs (pictures and sequences of pictures), auditory inputs (acoustic patterns and sequences of patterns), tactile inputs, inputs from other kinds of sensors such as radar, sonar, etc., and to retrieve stored content as required. The cognitive memory design described herein is based on concepts derived from life experience, from the literature of psychology, psychiatry, and neurobiology [6, 10, 23, 36, 40], and from years of research using artificial neural networks and adaptive and learning systems. Certain conjectures about human memory are key to the central idea. The design of a practical and useful memory system is described herein, a memory system that may also serve as a model for understanding many elements of human memory.
The memory system of this invention does not function like a computer memory in which specific data is stored in specific numbered registers or addresses, and retrieval is done by reading the contents of the specified memory register or address. Nor are data retrieved by matching keywords as with a conventional document search. The stored sensory data would neither have keywords nor would it be located in known or specified memory locations. Incoming sensory data would be stored at the next available empty memory location, and indeed could be stored redundantly at several empty locations. In any case, the location of any specific piece of recorded data would be unknown.
One form of retrieval is initiated by a prompt pattern from a current set of sensory inputs or input patterns. A search through the memory would be made to locate stored data that correlates with or relates to the present real-time sensory inputs. The search would be done by a retrieval system that makes use of autoassociative artificial neural networks [15].
Another form of retrieval is initiated by a prompt pattern which could be a pattern already stored in the memory or from a problem-solving element that would make use of retrieved memory output data. This form of retrieval resembles the phenomenon of human train-of-thought, in which one memory triggers another, which initiates a chain of memories. Each recalled sensory pattern, or memory, is used as a prompt to recall further memories.
A primary attribute of the proposed cognitive memory architecture is that it is scalable without performance degradation. Larger memories could store more sensory data, but storage and retrieval times would not increase with memory size.
Applications of cognitive memory systems to analysis of aerial imagery, human facial images, sounds, rote learning for game-playing, adaptive control systems, pattern recognition, and to other practical problems are possible.